const path = require('path');
//const PrerenderSPAPlugin = require('prerender-spa-plugin');
//const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
//引入path模块
function resolve(dir) {
	return path.join(__dirname, dir)
}
//扩充知识点
//__dirname 表示当前文件所在的目录的绝对路径
//__filename 表示当前文件的绝对路径
//module.filename ==== __filename 等价
//process.cwd() 返回运行当前脚本的工作目录的路径
//process.chdir() 改变工作目录
module.exports = {
	//基本路径
	publicPath: process.env.NODE_ENV === "production" ? "./" : "/", //   ./表示静态相对路径  /项目/ 服务器上的相对路径 
	//assetsDir:'statics',
	//输出文件目录
	outputDir: 'dist',
	// use the full build with in-browser compiler? https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
	//	compiler: false,
	// eslint-loader 是否在保存的时候检查
	lintOnSave: false,
	// webpack配置 see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md 
	chainWebpack: (config) => { //设置路径别名
		config.resolve.symlinks(true);
		config.resolve.alias
			.set('@', resolve('src'))
			.set('assets', resolve('src/assets'))
			.set('api', resolve('src/api'))
			.set('components', resolve('src/components'))
			.set('views', resolve('src/views'))
	},
	configureWebpack: config => {
		if(process.env.NODE_ENV === 'development') {
			config.devtool = 'source-map'
			// mutate config for production...
		}
		if (process.env.NODE_ENV === 'production'){
	        /*return {
	            plugins: [
	                new PrerenderSPAPlugin({
	                    // 生成文件的路径，也可以与webpakc打包的一致。
	                    // 下面这句话非常重要！！！
	                    // 这个目录只能有一级，如果目录层次大于一级，在生成的时候不会有任何错误提示，在预渲染的时候只会卡着不动。
	                    staticDir: path.join(__dirname,'dist'),
	                    // 对应自己的路由文件，比如a有参数，就需要写成 /a/param1。,'/product','/about'
	                    routes: ['/'],
	                    // 这个很重要，如果没有配置这段，也不会进行预编译
	                    renderer: new Renderer({
	                        inject: {
	                            foo: 'bar'
	                        },
	                        headless: false,
	                        // 在 main.js 中 document.dispatchEvent(new Event('render-event'))，两者的事件名称要对应上。
	                        renderAfterDocumentEvent: 'render-event'
	                    })
	                }),
	            ],
	        };*/
        }
	},
	// vue-loader 配置项 https://vue-loader.vuejs.org/en/options.html
	//	vueLoader: {},  、、打开会报错
	// 生产环境是否生成 sourceMap 文件
	productionSourceMap: false,
	// css相关配置
	css: {
		// 是否使用css分离插件 ExtractTextPlugin
		//extract: true,
		// 开启 CSS source maps?
		sourceMap: false,
		// css预设器配置项
		loaderOptions: {},
		// 启用 CSS modules for all css / pre-processor files.
		modules: false
	},
	// use thread-loader for babel & TS in production build  enabled by default if the machine has more than 1 cores
	//	parallel: require('os').cpus().length > 1,
	// 是否启用dll See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
	//	dll: false,
	// PWA 插件相关配置  see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
	pwa: {},

	// webpack-dev-server 相关配置
	devServer: {
		open: true, //是否自动启动服务器
		//disableHostCheck: true,
		//host: '0.0.0.0',设置本机为区域内可以访问
		port: 8081,
		https: false,
		hotOnly: false,
		proxy: { //代理路径 -->可以是任意多个
			"/api": {
				target: "http://api.midoogame.com", //替换自己的代理路径
				changeOrgin: true,
				pathRewrite: {
					'^/api': '/'
				}
			},
			"/auth": {
				target: "http://www.midoogame.com",
				changeOrgin: true,
				pathRewrite: {
					'^/auth': '/'
				}
			},
		}, // 设置代理
		before: app => {}
	},
	// 第三方插件配置
	pluginOptions: {
		// ...
	}
}